package com.seari.Utils;

import java.util.List;
import java.util.Map;
import java.util.Set;

public class HandlerNullUtils {

	/**
	 * 将Map中Value为null的值替换成空
	 * @param map
	 */
	public static void mapValueIsNullRep(Map<String, Object> map) {
		if (objectIsNull(map)) {
			return;
		}
		for (Map.Entry<String, Object> me : map.entrySet()) {
			Object value = me.getValue();
			if (value == null || value.equals("null")) {
				map.put(me.getKey(), "");
			}
		}
	}

	/**
	 * 将Map中Value为null的值替换成空
	 * @param map
	 */
	public static void mapValueIsNullRepByStr(Map<String, String> map) {
		if (objectIsNull(map)) {
			return;
		}
		for (Map.Entry<String, String> me : map.entrySet()) {
			Object value = me.getValue();
			if (value == null || value.equals("null")) {
				map.put(me.getKey(), "");
			}
		}
	}

	/**
	 * 判断对象是否为空(支持String、list、map 判断是否为空字符串、size等于零)
	 * @param object
	 * @return
	 */
	public static boolean objectIsNull(Object object) {

		/*
		 * 判断对象是否为空
		 */
		if (object == null) {
			return true;
		}

		/*
		 * 判断对象是否 List类型 如果是判断size大小
		 */
		if (object instanceof List) {
			if (((List) object).size() <= 0) {
				return true;
			}
		}

		/*
		 * 判断对象是否 Map类型 如果是判断size大小
		 */
		if (object instanceof Map) {
			if (((Map) object).size() <= 0) {
				return true;
			}
		}
		
		/*
		 * 判断对象是否 Set类型 如果是判断size大小
		 */
		if (object instanceof Set) {
			if (((Set) object).size() <= 0) {
				return true;
			}
		}

		/*
		 * 判断对象是否String 类型
		 */
		if (object instanceof String) {
			if("null".equals(object)){
				return true;
			}
			return ((String) object).isEmpty();
		}

		return false;
	}

	/**
	 * 空对象替换成空字符串
	 * @param in
	 * @return
	 */
	public static Object replaceNull(Object in) {
		if (in == null) {
			return "";
		}
		return in;
	}
}
